/***************************************************************
|	File:		Vector4.h
|	Author:		Michael Mozdzierz
|	Date:		05/29/2014
|
***************************************************************/

#pragma once

struct Vector2;
struct Vector3;

struct Vector4
{
	float x, y, z, w;

	Vector4(void);
	Vector4(float x, float y, float z, float w);
	Vector4(Vector2& v, float z, float w);
	Vector4(Vector3& v, float w);

	Vector4& operator-();
	Vector4& operator += (Vector4&);
	Vector4& operator -= (Vector4&);

	static float Dot(Vector3& a, Vector3& b);
	static Vector4 Normalize(Vector4& v);
}; 

Vector4 operator +(Vector4&, Vector4&);
Vector4 operator -(Vector4&, Vector4&);
float operator *(Vector4&, Vector4&);
Vector4 operator* (Vector4&, float);
Vector4 operator* (float, Vector4&);
